package com.meida.module.bus.client.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.meida.common.mybatis.annotation.TableAlias;
import com.meida.common.mybatis.base.entity.AbstractEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.List;

/**
 * 项目材料
 *
 * @author flyme
 * @date 2020-10-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("bus_material")
@TableAlias("material")
@ApiModel(value = "BusMaterial对象", description = "项目材料")
public class BusMaterial extends AbstractEntity {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    @TableId(value = "materialId", type = IdType.ID_WORKER)
    private Long materialId;

    @ApiModelProperty(value = "父ID")
    private Long parentId;

    @ApiModelProperty(value = "项目ID")
    private Long projectId;

    @ApiModelProperty(value = "换算单位")
    private String conversionUnit;

    @ApiModelProperty(value = "成本综合单价")
    private BigDecimal syntheticalPrice;
    @ApiModelProperty(value = "有合同综合单价")
    private BigDecimal syntheticalPrice1;
    @ApiModelProperty(value = "拟合同综合单价")
    private BigDecimal syntheticalPrice2;
    @ApiModelProperty(value = "合同综合单价")
    private BigDecimal syntheticalPrice3;

    @ApiModelProperty(value = "成本综合费")
    private BigDecimal syntheticalAmount;
    @ApiModelProperty(value = "有合同综合费")
    private BigDecimal syntheticalAmount1;
    @ApiModelProperty(value = "合同综合费")
    private BigDecimal syntheticalAmount2;
    @ApiModelProperty(value = "合同综合费")
    private BigDecimal syntheticalAmount3;

    @ApiModelProperty(value = "其他单价")
    private BigDecimal otherPrice;

    @ApiModelProperty(value = "其他费用")
    private BigDecimal otherAmount;

    @ApiModelProperty(value = "标前工程量")
    private BigDecimal beforeMarkQuantity;

    @ApiModelProperty(value = "合同清单工程量")
    private BigDecimal contractBillQuantity;

    @ApiModelProperty(value = "计量单位")
    private String measurementUnit;

    @ApiModelProperty(value = "损耗")
    private BigDecimal loss;

    @ApiModelProperty(value = "成本主材价")
    private BigDecimal mainPrice;
    @ApiModelProperty(value = "有合同主材价")
    private BigDecimal mainPrice1;
    @ApiModelProperty(value = "拟合同主材价")
    private BigDecimal mainPrice2;
    @ApiModelProperty(value = "合同主材价")
    private BigDecimal mainPrice3;


    @ApiModelProperty(value = "预估总产值有合同主材价")
    private BigDecimal mainsumPrice1;
    @ApiModelProperty(value = "预估总产值拟合同主材价")
    private BigDecimal mainsumPrice2;
    @ApiModelProperty(value = "预估总产值有合同主材价")
    private BigDecimal mainsumPrice3;


    @ApiModelProperty(value = "成本主材费")
    private BigDecimal mainAmount;
    @ApiModelProperty(value = "有合同主材费")
    private BigDecimal mainAmount1;
    @ApiModelProperty(value = "拟合同主材费")
    private BigDecimal mainAmount2;
    @ApiModelProperty(value = "合同主材费")
    private BigDecimal mainAmount3;

    @ApiModelProperty(value = "安装价")
    private BigDecimal installPrice;
    private BigDecimal installPrice1;
    private BigDecimal installPrice2;
    private BigDecimal installPrice3;

    @ApiModelProperty(value = "安装费")
    private BigDecimal installAmount;
    private BigDecimal installAmount1;
    private BigDecimal installAmount2;
    private BigDecimal installAmount3;
    @ApiModelProperty(value = "预估总产值有合同安装价")
    private BigDecimal installsumPrice1;
    @ApiModelProperty(value = "预估总产值拟合同合同安装价")
    private BigDecimal installsumPrice2;
    @ApiModelProperty(value = "预估总产值合同安装价")
    private BigDecimal installsumPrice3;
    @ApiModelProperty(value = "预估总产值有合同合计")
    private BigDecimal contractsumSyntheticalPrice1;
    @ApiModelProperty(value = "预估总产值拟合同合计")
    private BigDecimal contractsumSyntheticalPrice2;
    @ApiModelProperty(value = "预估总产值合同合计")
    private BigDecimal contractsumSyntheticalPrice3;

    @ApiModelProperty(value = "有合同综合单价")
    private BigDecimal contractSyntheticalPrice1;

    @ApiModelProperty(value = "拟合同综合单价")
    private BigDecimal contractSyntheticalPrice2;

    @ApiModelProperty(value = "合同综合单价")
    private BigDecimal contractSyntheticalPrice3;
    @ApiModelProperty(value = "100计量单位工程量合计")

    private BigDecimal unitBillQuantity100;
    @ApiModelProperty(value = "100换算单位工程量合计")

    private BigDecimal convertBillQuantity100;
    @ApiModelProperty(value = "200计量单位合计")

    private BigDecimal unitBillQuantity200;
    @ApiModelProperty(value = "200换算工程合计")

    private BigDecimal convertBillQuantity200;
    @ApiModelProperty(value = "采购计划量计量单位合计")

    private BigDecimal planPurchaseCount;
    @ApiModelProperty(value = "采购换算量单位合计")

    private BigDecimal convertPurchaseCount;

    @ApiModelProperty(value = "本月产值主材价")
    private BigDecimal currentMonthmainPrice;
    @ApiModelProperty(value = "本月产值安装价")
    private BigDecimal currentMonthinstallPrice;

    @ApiModelProperty(value = "本月产值综合价")
    private BigDecimal currentMonthsumPrice;

    @ApiModelProperty(value = "截止上个月主材价")
    private BigDecimal lastMonthmainPrice;
    @ApiModelProperty(value = "截止上个月安装价")

    private BigDecimal lastMonthinstallPrice;
    @ApiModelProperty(value = "截止上个月综合单价")

    private BigDecimal lastMonthsumPrice;
    @ApiModelProperty(value = "累计产值主材价")

    private BigDecimal totalMonthmainPrice;
    @ApiModelProperty(value = "累计产值安装价")

    private BigDecimal totalMonthinstallPrice;
    @ApiModelProperty(value = "累计产值综合单价")

    private BigDecimal totalsumPrice;
    @ApiModelProperty(value = "本月完成工程量")
    private BigDecimal currentFinishMonthCount;
    @ApiModelProperty(value = "上月截止完成工程量")
    private BigDecimal lastFinishMonthCount;
    @ApiModelProperty(value = "累计完成工程量")
    private BigDecimal totalFinishCount;

    @TableField(exist = false)
    List<BusMaterial> children;

}
